/**
 * @file 拦截规则静态配置（示例）
 * @description 仅在主进程启动时加载一次。可以根据项目需要扩展或提取到外部 JSON。
 */

import type { HeaderRulesConfig } from './http-interceptor'

const rules: HeaderRulesConfig = {
  // 请求头规则
  requests: [
    // google登录页，设置 User-Agent,否则登录时会一直弹出windows authentication
    {
      match: 'accounts.google.com',
      handler: () => ({
        'user-agent': 'Chrome'
      })
    }
    // 示例2：正则匹配，注入自定义头
    // {
    //   match: 'test-csp.example',
    //   handler: details => ({
    //     'x-requested-with': 'XMLHttpRequest',
    //     'x-app-tab-id': String(details.webContentsId ?? '')
    //   })
    // }
  ],

  // 响应头规则
  responses: [
    // 示例3：pss.bdstatic.com 相关页面，添加自定义头
    // {
    //   match: 'pss.bdstatic.com',
    //   handler: d => {
    //     return {
    //       'x-aaae': 'abc'
    //     }
    //   }
    // },
    // 移除 CSP 限制
    {
      match: 'https://github.com',
      handler: () => ({
        'content-security-policy': null
      })
    },
    // 解决后端API的CORS问题
    {
      match: '192.168.2.231:8889',
      handler: () => ({
        'access-control-allow-origin': '*',
        'access-control-allow-methods': 'GET, POST, PUT, DELETE, PATCH, OPTIONS',
        'access-control-allow-headers': 'Content-Type, Authorization, X-Requested-With',
        'access-control-allow-credentials': 'true'
      })
    }
  ]
}

export default rules
